#ifndef OCK_MEMORY_BRIDGE_OCK_ACLADAPTER_OCK_MEMORY_FREE_PARAM_H
#define OCK_MEMORY_BRIDGE_OCK_ACLADAPTER_OCK_MEMORY_FREE_PARAM_H
#include <ostream>
#include "ock/acladapter/executor/OckAsyncTaskBase.h"

namespace ock {
namespace acladapter {

class OckMemoryFreeParam : public OckAsyncTaskParamBase
{

public:
    OckMemoryFreeParam(void *addr, hmm::OckHmmHeteroMemoryLocation location);
    virtual ~OckMemoryFreeParam() noexcept = default;
    void *Addr(void);
    const void *Addr(void) const;
     hmm::OckHmmHeteroMemoryLocation location(void) const;
private:
    void *addr;
    hmm::OckHmmHeteroMemoryLocation location;

};

std::ostream &operator<<(std::ostream &os, const OckMemoryFreeParam &param);

}
}
#endif